﻿/**********************************************************************
 * @file   FITKSEASubSysBeamWare.h
 * @brief  SEA子系统 梁 波的数据参数
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2024-11-13
 *********************************************************************/
#ifndef _FITKSEASUBSYS_BEAM_WARE_H___
#define _FITKSEASUBSYS_BEAM_WARE_H___

#include "FITKAcousticsModelAPI.h"
 
namespace Acoustics
{
    class FITKAcousticsAbstractSpectra;
     /**
      * @brief  SEA梁子系统 波的数据参数
      * @author liuzhonghua (liuzhonghuaszch@163.com)
      * @date   2024-11-08
      */
    class FITKAcousticsModelAPI FITKSEASubSysBeamWare
    {
    public:
        /**
         * @brief Construct a new FITKSEASubSysBeamWare object
         * @param[i]  是否从FE模型创建
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-11-13
         */
        explicit FITKSEASubSysBeamWare() = default;
        /**
         * @brief Destroy the FITKSEASubSysBeamWare object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date   2024-11-13
         */
        virtual ~FITKSEASubSysBeamWare() = default;

        /**
         * @brief    设置Flexure X在SEA解决方案的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        void setFlexureXInSEAMatrixSolution(bool state);
        /**
         * @brief    获取Flexure X在SEA解决方案的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool getFlexureXInSEAMatrixSolution();
        /**
         * @brief    设置Flexure X模态密度的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        void setFlexureXModelDensityState(bool state);
        /**
         * @brief    获取Flexure X模态密度的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool getFlexureXModelDensityState();
        /**
         * @brief    设置Flexure X的模态密度id
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        void setFlexureXModelDensityID(int id);
        /**
         * @brief    获取Flexure X的模态密度id
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        int getFlexureXModelDensityID();

        /**
        * @brief    设置Flexure Y在SEA解决方案的启用状态
        * @author   wangning (2185896382@qq.com)
        * @date     2024-11-13
        */
        void setFlexureYInSEAMatrixSolution(bool state);
        /**
         * @brief    获取Flexure Y在SEA解决方案的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool getFlexureYInSEAMatrixSolution();
        /**
         * @brief    设置Flexure Y模态密度的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        void setFlexureYModelDensityState(bool state);
        /**
         * @brief    获取Flexure Y模态密度的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool getFlexureYModelDensityState();
        /**
         * @brief    设置Flexure Y的模态密度id
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        void setFlexureYModelDensityID(int id);
        /**
         * @brief    获取Flexure Y的模态密度id
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        int getFlexureYModelDensityID();

        /**
         * @brief    设置Extension Z在SEA解决方案的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        void setExtensionZInSEAMatrixSolution(bool state);
        /**
         * @brief    获取Extension Z在SEA解决方案的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool getExtensionZInSEAMatrixSolution();
        /**
         * @brief    设置Extension Z模态密度的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        void setExtensionZModelDensityState(bool state);
        /**
         * @brief    获取Extension Z模态密度的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool getExtensionZModelDensityState();
        /**
         * @brief    设置Extension Z的模态密度id
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        void setExtensionZModelDensityID(int id);
        /**
         * @brief    获取Extension Z的模态密度id
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        int getExtensionZModelDensityID();

        /**
         * @brief    设置Torsion ZZ在SEA解决方案的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        void setTorsionZZInSEAMatrixSolution(bool state);
        /**
         * @brief    获取Torsion ZZ在SEA解决方案的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool getTorsionZZInSEAMatrixSolution();
        /**
         * @brief    设置Torsion ZZ模态密度的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        void setTorsionZZModelDensityState(bool state);
        /**
         * @brief    获取Torsion ZZ模态密度的启用状态
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool getTorsionZZModelDensityState();
        /**
         * @brief    设置Torsion ZZ的模态密度id
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        void setTorsionZZModelDensityID(int id);
        /**
         * @brief    获取Torsion ZZ的模态密度id
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        int getTorsionZZModelDensityID();

    private:
        /**
         * @brief  Flexure X 是否启用解决方案
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool _flexureXInSEAMatrixSolution{ true };
        /**
         * @brief  Flexure X 是否重载模态密度
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool _flexureXModelDensityState{ false };
        /**
         * @brief  Flexure X 模态密度ID
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        int _flexureXModelDensityID{ -1 };

        /**
         * @brief  Flexure Y 是否启用解决方案
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool _flexureYInSEAMatrixSolution{ true };
        /**
         * @brief  Flexure Y 是否重载模态密度
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool _flexureYModelDensityState{ false };
        /**
         * @brief  Flexure Y 模态密度ID
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        int _flexureYModelDensityID{ -1 };

        /**
         * @brief Extension Z 是否启用解决方案
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool _extensionZInSEAMatrixSolution{ true };
        /**
         * @brief  Extension Z 是否重载模态密度
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool _extensionZModelDensityState{ false };
        /**
         * @brief Extension Z 模态密度ID
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        int _extensionZModelDensityID{ -1 };

        /**
         * @brief Torsion ZZ 是否启用解决方案
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool _torsionZZInSEAMatrixSolution{ true };
        /**
         * @brief  Torsion ZZ 是否重载模态密度
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        bool _torsionZZModelDensityState{ false };
        /**
         * @brief Torsion ZZ 模态密度ID
         * @author   wangning (2185896382@qq.com)
         * @date     2024-11-13
         */
        int _torsionZZModelDensityID{ -1 };

    };

}


#endif
